The invention pertains to a computer system having a program memory with a sequence of addresslocations for the storage of machine codes; a keyboard; a display device for at least one row of characters; and a processor. The processor includes at least an address register for the program memory, with an incrementing input; and an instruction register and further storage means together having a predetermined length for the storage of an instruction of not more than that pre-determined length read from the program memory. It further includes a first instruction-decoder connected to the instruction register and an execution element for the execution of a data processing operation under the control of a signal from the first instruction decoder. Said elements, are connected by information links for data signals and control signals.
The display means may comprise a printer or a cathode-ray tube or display element with plasma light sources for one or more rows of characters. The processor may comprise an arithmetic and logical element and further means for the processing and routing of data. Programs are often fed into computer systems as "source programs", e.g. via the keyboard. In the source program, a (source) instruction contains a group of e.g. four characters symbolic of the instruction, and further often additional indication, such as the name of one or more registers, from which data for the instruction to be carried out has to be obtained, or where the result of the operation has to be stored, the value of a parameter to be used or some other information. This makes the instruction easily recognizable to the programmer. A source instruction can be addressed by using the corresponding line number of a line-wise display of the same, so that modification of the program is possible. The disadvantage of the form mentioned is the large redundancy, because sometimes, for example, up to 20 alpha-numeric characters can be necessary to represent a single instruction. The source program is therefore translated into so-called object code by a translating element (assembler). Symbolic addresses (line numbers) are thereby translated into the actual addresses of the program memory. The translating element can be continuously present in the computer system. Alternatively, it can be connected to translate the source program only once, so that it does not form a necessary part of the invention. The object code mentioned above comprises a sequence of machine instructions. A machine instruction contains an op(eration) code or machine code whereby the machine instruction is identified. Each different machine code is, as it were, symbolized by another number. Such a number is contained in a group of eight binary digits. Besides the number just mentioned, the machine instruction may also contain data or a reference to a memory address where special data are stored. These special data can, for example, be a text, a sub-routine and in appropriate cases data or addresses. In this way the object code can be considerably more compact than the source program and storage thus requires less memory space. In what follows it is assumed that the machine program is already stored for future use in the program memory.
In many cases it is necessary that the machine program is accessible to the programmer, for example to bring about certain modifications or to derive certain information from it, but without actually executing the program. Now, in addition to the instructions themselves (with the further data contained within the instructions), a machine program also contains information external to the instructions proper, such as text (commentary or titles), addresses (for example, a starting address of a group of data or jump addresses) and data. When the machine program is executed, this external information is processed differently from the machine instructions because the last instruction before such a group of external information is always a branching instruction, wherein reference is made to a specific address (or several addresses) in the computer; when such an address is called, the computer is preconditioned to be ready to process the information arriving from the program memory in the appropriate manner. In the design of a program, however, it is often advantageous to address the program memory directly, whereby for example the addresses are scanned sequentially. There is then in certain cases a risk that a non-instruction is decoded, which is not permissible. It will be remembered that in the source program this problem is non-existent because there addressing can be done by means of the line number.